package movilmax.sia_corp.action;


import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;

import movilmax.sia_corp.model.Prospecto;
import movilmax.sia_corp.model.SucursalC;
import movilmax.sia_corp.model.Usuario;

import apli.conectar.Conectar;
import basedatos.Fecha;
import basedatos.Resultado;
import utilidades.Cadena;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
//import com.sun.org.apache.xerces.internal.impl.dtd.models.DFAContentModel;
//import com.sun.org.apache.xml.internal.resolver.helpers.Debug;

public class Prospectos  extends ActionSupport{
	private static final long serialVersionUID = -1784583903760825118L;
	private Prospecto prospecto;
	private LinkedList<Prospecto> rpt_lista;
	private LinkedList<SucursalC> sucursales;
	private Map<String, String>  lst_prospectos;
	private String opc;
	private String titulo;
	private String auto_v;
	
	

	public String getCodigoDesdeIdentificacion() throws Exception 
	{
		Map session = ActionContext.getContext().getSession();
	    Usuario USUARIO = (Usuario)session.get("ses_usuario");
	    if(USUARIO== null)
	    {
	    	this.addActionError("La sesion del usuario ha caducado");
	    	return ERROR;
	    }
	    
	    String SQL ="SELECT propescto.codigo FROM prospectos WHERE prospecto.identificacion "+this.getProspecto().getIdentificacion();
	    
	    Conectar BASE=new Conectar();
	    if(BASE.getMsg().equals("SI"))
	    {
			SQL="UPDATE prospectos set nombres='"+ prospecto.getNombres() +"',tipo='"+prospecto.getTipo()+"' where codigo='" + this.getProspecto().getCodigo() + "'  ";
			BASE.getBaseDatos().ejecutar(SQL);
	    	
		    return SUCCESS;	    	
	    }
	    
	    return ERROR;
	    

	}

	
	
	
@SuppressWarnings("rawtypes")
public String actualizar() throws Exception {
		Map session = ActionContext.getContext().getSession();
	    Usuario USUARIO = (Usuario)session.get("ses_usuario");
	    if(USUARIO== null){
	    	this.addActionError("La sesion del usuario ha caducado");
	    	return ERROR;
	    }
	    Conectar BASE=new Conectar();
		Fecha fecha=new Fecha();
		String dia= fecha.getFecha();
		String hora=fecha.getHoras();
		String SQL="",str_sql="";
		if(BASE.getMsg().equals("SI")){
				SQL="UPDATE prospectos set nombres='"+ prospecto.getNombres() +"',tipo='"+prospecto.getTipo()+"' where codigo='" + this.getProspecto().getCodigo() + "'  ";
				BASE.getBaseDatos().ejecutar(SQL);
				if(!this.getProspecto().getDes_servicio().equals("-1")){
					if(this.getProspecto().getDes_servicio().indexOf("INTERNET")>=0 ){
						if(this.getProspecto().getDes_servicio().indexOf("VARIABLE")>=0 ){
						    str_sql=",serv_d='NO APLICA',vel_d='0',serv_i='VARIABLE',vel_i='"+this.getProspecto().getDes_producto()+"' ";
						}else{
							str_sql=",serv_d='NO APLICA',vel_d='0',serv_i='GARANTIZADO',vel_i='"+this.getProspecto().getDes_producto()+"' ";
						}
					}else{
						if(this.getProspecto().getDes_servicio().indexOf("VARIABLE")>=0 ){
						    str_sql=",serv_i='NO APLICA',vel_i='0',serv_d='VARIABLE',vel_d='"+this.getProspecto().getDes_producto()+"' ";
						}else{
							str_sql=",serv_i='NO APLICA',vel_i='0',serv_d='GARANTIZADO',vel_d='"+this.getProspecto().getDes_producto()+"' ";
						}
					}
				}
				SQL="UPDATE detalle_serv_solicitado set fin='"+ prospecto.getFin() +"',presupuesto='"+prospecto.getPresupuesto().replace(",", ".") +"' "+str_sql+" where prospecto='" + this.getProspecto().getCodigo() + "'  ";
				BASE.getBaseDatos().ejecutar(SQL);
				this.addActionMessage("ok");
		}else{
				this.addActionError("No hay conexion al servidor");
				return ERROR;
		}
        SQL="INSERT INTO corp_seguimiento_actividades " +
			"(prospecto,actividad,detalle,obs,usuario,fecha,hora) "+
			"VALUES('"+this.getProspecto().getCodigo() +"','9','9981','MODIFICAR DATOS','"+ USUARIO.getUsuario() +"','"+dia+"','"+hora+"' )";
        BASE.getBaseDatos().ejecutar(SQL); 
        BASE.getBaseDatos().cerrarConexion(); 
		return SUCCESS;
	}
	
	@SuppressWarnings("rawtypes")
	public String cargar() throws Exception {
    	if(prospecto!=null){
    		Map session = ActionContext.getContext().getSession();
    	    Usuario USUARIO = (Usuario)session.get("ses_usuario");
    	    String SQL="",sol="";
    	    if (USUARIO!=null){	
    	    	if(prospecto.getCodigo().equals("-1") || prospecto.getCodigo().equals("")){
    	    	    this.addActionError("Debe seleccionar un prospecto de la lista");
 				    return ERROR;
    	    	}  
    	    	Conectar BASE= new Conectar();
    	    	if(BASE.getMsg().equals("SI")){	
    	    		try{
	  				SQL="Select P.*,P.nombres+' '+P.apellidos as des,P.zona+','+P.avcalle+','+P.tipoinmueble+','+P.des_inmuemble+' N� '+P.nro_inmueble+','+P.piso_inmueble as dirx,M.municipio as des_mun,E.estado as des_est,CONVERT(varchar(30),P.fecha_visita,103) as fecha_visita, S.presupuesto ,CONVERT(varchar(30),S.fin,103) as fin,S.serv_i,S.vel_i,S.serv_d,S.vel_d,S.observaciones,S.dispositivo " +
	  				" From prospectos P,municipios M,estados E,detalle_serv_solicitado S Where P.codigo='"+prospecto.getCodigo()+ "' and P.municipio=M.cod and M.estado=E.cod and P.codigo=S.prospecto ";
	  				Resultado RCS=BASE.getBaseDatos().consultar(SQL);
	  				
	  				/* Solamente si encontro un prospecto con el id seleccionado*/
	  				
	  				if(RCS.RP)
	  				{
	  					prospecto.setIdentificacion(RCS.getCadena("identificacion"));
	  					prospecto.setDescripcion(RCS.getCadena("des"));
	  					prospecto.setNombres(RCS.getCadena("nombres"));
	  					prospecto.setApellidos(RCS.getCadena("apellidos"));
	  					prospecto.setEmail(RCS.getCadena("email"));
	  					prospecto.setCelular(RCS.getCadena("celular"));
	  					prospecto.setTelefono(RCS.getCadena("telefono"));
	  					prospecto.setTel_oficina(RCS.getCadena("telefono_oficina"));
	  					prospecto.setDireccion(RCS.getCadena("dirx"));
	  					prospecto.setCiudad(RCS.getCadena("ciudad"));
	  					prospecto.setMunicipio(RCS.getCadena("des_mun"));
	  					prospecto.setEstado(RCS.getCadena("des_est"));
	  					prospecto.setWeb(RCS.getCadena("web"));
	  					prospecto.setTipo(RCS.getCadena("tipo").toUpperCase());
	  					prospecto.setStatus(RCS.getCadena("status"));
	  					prospecto.setFecha_req(RCS.getCadena("fecha_visita") );
	  					prospecto.setObservaciones(RCS.getCadena("observaciones"));
	  					if(RCS.getCadena("presupuesto").equals("") )
	  						prospecto.setPresupuesto("0");
	  					else
	  					    prospecto.setPresupuesto(RCS.getCadena("presupuesto"));
	  					if(RCS.getCadena("fin").equals("") )
	  						prospecto.setFin(new Fecha().getFecha() );
	  					else
	  					    prospecto.setFin(RCS.getCadena("fin"));
	  					
	  					if(!prospecto.getTipo().equals("PYME") ){
		  					sol=RCS.getCadena("serv_i");
							if( sol.equals("-1") ){
								  if(RCS.getCadena("serv_d").equals("GARANTIZADO")){
									  prospecto.setSolicita("DATOS GARANTIZADO ("+RCS.getCadena("vel_d")+")");  
									  prospecto.setDes_servicio("DATOS GARANTIZADO"); 
									  prospecto.setCod_servicio("DATOS GARANTIZADO");
								  }else{
									  prospecto.setSolicita("DATOS VARIABLE ("+RCS.getCadena("vel_d")+")");
									  prospecto.setDes_servicio("DATOS VARIABLE"); 
									  prospecto.setCod_servicio("DATOS VARIABLE");
								  }
								  prospecto.setDes_producto(RCS.getCadena("vel_d"));
								  prospecto.setCod_producto(RCS.getCadena("vel_d"));
							}else{
								  if(sol.equals("GARANTIZADO")){
									  prospecto.setSolicita("INTERNET GARANTIZADO ("+RCS.getCadena("vel_i")+")");
									  prospecto.setDes_servicio("INTERNET GARANTIZADO"); 
									  prospecto.setCod_servicio("INTERNET GARANTIZADO");
								  }else{
									  prospecto.setSolicita("INTERNET VARIABLE ("+RCS.getCadena("vel_i")+")");
									  prospecto.setDes_servicio("INTERNET VARIABLE"); 
									  prospecto.setCod_servicio("INTERNET VARIABLE");
								  }
								  prospecto.setDes_producto(RCS.getCadena("vel_i"));
								  prospecto.setCod_producto(RCS.getCadena("vel_i"));
							}
	  					}else{
	  						if(RCS.getCadena("dispositivo").equals("") )
	  						   prospecto.setSolicita("-");
	  						else	
	  						   prospecto.setSolicita(RCS.getCadena("dispositivo"));
	  					}
	  				}else{
	  				    this.addActionError("Prospecto no encontrado");
	  				    return ERROR;
	  			    }
	  				   	
    	    	  }catch(Exception err  ){
  				    this.addActionError("Error: "+err.toString());
  				    return ERROR;
  			 	} 
    	      SQL="Select X.cod,X.descripcion,E.estado+','+C.municipio+','+X.ciudad+','+X.zona+','+X.avcalle+','+X.tipoinmueble+','+X.des_inmuemble+' - '+X.piso_inmueble+' # '+X.nro_inmueble as dirx,X.telefono,X.telefono_oficina,X.celular,X.fax  "+
    	      "From corp_sucursales X ,municipios C,estados E "+
    	      "where X.prospecto='"+prospecto.getCodigo() + "' and X.municipio=C.cod and C.estado=E.cod Order by X.cod ASC "; 	
    	      Resultado RCS=BASE.getBaseDatos().consultar(SQL);
    	      sucursales=new LinkedList<SucursalC>() ;
				if(RCS.RP){
				   do{
					   SucursalC SUC=new SucursalC();
					   SUC.setCod(RCS.getCadena("cod"));
					   SUC.setDes(RCS.getCadena("descripcion"));
					   SUC.setDirx(RCS.getCadena("dirx"));
					   SUC.setTels(RCS.getCadena("telefono")+" / "+RCS.getCadena("celular")  );
					   SUC.setFax(RCS.getCadena("fax"));
					   sucursales.add(SUC); 
				   }while(RCS.sigItem() );
				}
				try{
					session.remove("ses_tabla_ss");
					session.remove("ses_tabla_cc");
				}catch(Exception erx){
					
				}
				BASE.getBaseDatos().cerrarConexion(); 
				return SUCCESS;
  		   }
  		   else
  			 this.addActionError("No hay conexion al servidor");  
    	   } 
    	  else
    		  this.addActionError("La sesion del usuario ha caducado");   	
    	} 
    	return ERROR;
	} 

	@SuppressWarnings("rawtypes")
	public String consultar() throws Exception {
		rpt_lista = new LinkedList<Prospecto>();
	    Map session = ActionContext.getContext().getSession();
	    Usuario USUARIO = (Usuario)session.get("ses_usuario");
	   
	    if (USUARIO!=null){
		    Conectar BASE= new Conectar();
		    if(BASE.getMsg().equals("SI" )  ){
		    	String SQL="",crit="",c_sel="",c_ord="p.nombres";
		    	if (prospecto ==null){
		    		//if(!USUARIO.getRol().getCod().equals("31")  )
		    		    crit=" and p.status = 'POR ASIGNAR'  ";
		    	}
		    	
		    	if (opc !=null){
		    		if(!this.getOpc().trim().equals("0") ){
		    			c_sel="";
		    		    c_sel=" TOP "+opc.trim();
		    		    c_ord=" p.fecha_registro DESC,p.hora_registro DESC";
		    		}
		    	}
		    	
		    	if (prospecto !=null){
		    		if( prospecto.getNombres() !=null ){
			    		crit=" and p.nombres like '%"+prospecto.getNombres().trim() +"%' ";
			    	}
			    	if( prospecto.getStatus() !=null ){
			    		if (!prospecto.getStatus().equals("TODOS") )
			    		    crit=crit+" and p.status = '"+prospecto.getStatus().trim() +"' ";
			    	}
			    	if( prospecto.getTipo() !=null ){
			    		if (!prospecto.getTipo().equals("TODOS") )
			    		    crit=crit+" and p.tipo = '"+prospecto.getTipo().trim() +"' ";
			    	}
			    	if( prospecto.getVendedor() !=null ){
			    		if (!prospecto.getVendedor().equals("-1") ){
			    			crit="NO";
			    			String crit_tp=prospecto.getTipo().trim();
			    			if (crit_tp.equals("TODOS") ){
			    				crit_tp="CORPORATIVO";
			    			}
			    				
			    			SQL="select "+c_sel+" CONVERT(varchar(30),X.fecha,103) as fecha_stx ,X.hora as hora_stx,D.descripcion as detalle,V.descripcion as des_vendedor,p.codigo,p.identificacion,p.nombres,p.ciudad,p.zona,P.tipo,P.status as stx,CONVERT(varchar(30),p.fecha_registro,103) as fecha,p.hora_registro as hora,S.serv_i,S.vel_i,S.serv_d,S.vel_d,S.dispositivo "+ 
							"from corp_seguimiento_actividades X,corp_asignaciones A,corp_detalles_actividad D,vendedores V,prospectos p,detalle_serv_solicitado S "+ 
							"where A.vendedor='"+ prospecto.getVendedor() +"' and A.status='EN PROCESO' and A.vendedor=V.cod and A.prospecto=P.codigo and p.tipo = '"+crit_tp +"' and p.codigo=S.prospecto and p.codigo=X.prospecto and X.detalle=D.cod "+ 
							"and A.prospecto=S.prospecto and A.prospecto=X.prospecto and S.prospecto=X.prospecto "+ 
							"and X.cod in( select MAX(A.cod) nact "+
							"from corp_detalles_actividad X,corp_seguimiento_actividades A,prospectos P "+ 
							"where X.horas>0 and X.cod=A.detalle and A.prospecto=P.codigo and P.tipo = '"+ crit_tp +"' "+
							"group by P.codigo ) order by p.nombres"; 
			    			//Debug.println("SQL1", SQL);
			    		}   
			    	}
		    	}
		       if(!crit.equals("NO")){
			    	
			    	if(USUARIO.getPerfil().getCod().trim().equals("2") ){
			    		SQL="SELECT "+c_sel+" p.codigo,p.identificacion,p.nombres,p.ciudad,p.zona,P.tipo,P.status as stx,CONVERT(varchar(30),p.fecha_registro,103) as fecha,p.hora_registro as hora,S.serv_i,S.vel_i,S.serv_d,S.vel_d,S.dispositivo "+
	 					"from prospectos p,detalle_serv_solicitado S,corp_asignaciones A "+
						"where a.vendedor='"+ USUARIO.getCod_vendedor() +"' and A.status='EN PROCESO' and a.prospecto=p.codigo and p.tipo in('PYME','CORPORATIVO') "+crit+" and p.codigo=S.prospecto "+ 
					    "Order by "+c_ord;	
			    	}else if(USUARIO.getPerfil().getCod().trim().equals("3") || USUARIO.getPerfil().getCod().trim().equals("4")  ) {
			    		SQL="SELECT "+c_sel+" p.codigo,p.identificacion,p.nombres,p.ciudad,p.zona,P.tipo,P.status as stx,CONVERT(varchar(30),p.fecha_registro,103) as fecha,p.hora_registro as hora,S.serv_i,S.vel_i,S.serv_d,S.vel_d,S.dispositivo  "+
	 					"from prospectos p,detalle_serv_solicitado S "+
						"where p.prop='"+ USUARIO.getUsuario() +"' and p.tipo in('PYME','CORPORATIVO') "+crit+" and p.codigo=S.prospecto "+ 
					    "Order by "+c_ord;	
			    	}else{
			    		 SQL="SELECT "+c_sel+" p.codigo,p.identificacion,p.nombres,p.ciudad,p.zona,P.tipo,P.status as stx,CONVERT(varchar(30),p.fecha_registro,103) as fecha,p.hora_registro as hora,S.serv_i,S.vel_i,S.serv_d,S.vel_d,S.dispositivo "+
		 				 "from prospectos p,detalle_serv_solicitado S "+
						 "where p.tipo in('PYME','CORPORATIVO') "+crit+" and p.codigo=S.prospecto "+ 
						 "Order by "+c_ord;	
			    	}	
		        }
				Resultado RCS=BASE.getBaseDatos().consultar(SQL);
				this.addActionMessage(SQL);
				if(RCS.RP){
					//int i=1;
					Resultado RCS2=new Resultado();
				     do{
						  prospecto= new Prospecto();
						  prospecto.setCodigo(RCS.getCadena("codigo"));
						  prospecto.setIdentificacion(RCS.getCadena("identificacion"));
						  prospecto.setNombres(RCS.getCadena("nombres"));
						  prospecto.setZona(RCS.getCadena("zona"));
						  prospecto.setCiudad(RCS.getCadena("ciudad"));
						  prospecto.setFecha(RCS.getCadena("fecha"));
						  prospecto.setHora(RCS.getCadena("hora"));
						  prospecto.setTipo(RCS.getCadena("tipo"));
						  prospecto.setStatus(RCS.getCadena("stx"));
						  prospecto.setStatusa(RCS.getCadena("stx"));
						  if(RCS.getCadena("stx").equals("EN PROCESO") )
							  prospecto.setTit_boton("ReAsignar");
						  else
							  prospecto.setTit_boton("Asignar");
						  
						  prospecto.setSolicita("NINGUNO");
						  if(RCS.getCadena("serv_i").equals("NO APLICA") ){
							 if(RCS.getCadena("serv_d").equals("NO APLICA") ){
								 prospecto.setSolicita(RCS.getCadena("dispositivo"));
							 }else{
								if(RCS.getCadena("serv_d").equals("VARIABLE"))
								   prospecto.setSolicita("D-VBR "+RCS.getCadena("vel_d") );
								else
								   prospecto.setSolicita("D-CBR "+RCS.getCadena("vel_d"));  
							 } 
						  }else{
							  if(RCS.getCadena("serv_i").equals("VARIABLE"))
							     prospecto.setSolicita("VBR "+RCS.getCadena("vel_i") );
							  else
								 prospecto.setSolicita("CBR "+RCS.getCadena("vel_i"));  
						  }  
						  //serv_i,S.vel_i,S.serv_d,S.vel_d
						  if(!crit.equals("NO")){
								  SQL="select TOP 1 CONVERT(varchar(30),S.fecha,103) as fecha ,S.hora,D.descripcion as detalle,V.descripcion as des_vendedor "+
									 "from corp_seguimiento_actividades S,corp_asignaciones A,corp_detalles_actividad D,vendedores V "+
									 "where S.prospecto='"+ prospecto.getCodigo() +"' and S.procesado='0' and S.detalle=D.cod and A.prospecto=S.prospecto and A.status='EN PROCESO' and A.vendedor=V.cod order by S.cod DESC";
								  RCS2=BASE.getBaseDatos().consultar(SQL);
								  if(RCS2.RP){
										prospecto.setFecha_stx(RCS2.getCadena("fecha"));
										prospecto.setHora_stx(RCS2.getCadena("hora"));
										prospecto.setVendedor(RCS2.getCadena("des_vendedor"));
										prospecto.setStatus(RCS2.getCadena("detalle"));
										RCS2.liberar();
								  }else{
									    prospecto.setFecha_stx(RCS.getCadena("fecha"));
										prospecto.setHora_stx(RCS.getCadena("hora"));
										prospecto.setVendedor("NO REGISTRA");	
								  }
								  SQL="select top 1 DATEDIFF(day,((A.fecha +' '+A.hora)),GETDATE() ) as tiempo "+
								  "from corp_seguimiento_actividades A where A.prospecto='"+ prospecto.getCodigo() +"' and A.procesado='0' order by A.cod DESC";
								  RCS2=BASE.getBaseDatos().consultar(SQL);
								  if(RCS2.RP){
									  prospecto.setStxdias( new Cadena().convertirStr(RCS2.getInt("tiempo") ) );
									  RCS2.liberar();
								  }else{
									  prospecto.setStxdias("0");
								  }  
						  }else{
							    prospecto.setFecha_stx(RCS.getCadena("fecha_stx"));
								prospecto.setHora_stx(RCS.getCadena("hora_stx"));
								prospecto.setVendedor(RCS.getCadena("des_vendedor"));
								prospecto.setStatus(RCS.getCadena("detalle"));
						  }
						  rpt_lista.add(prospecto);
						//  i++;
				    }while(RCS.sigItem()); 
				}	
				BASE.getBaseDatos().cerrarConexion(); 
			}else{
				this.addActionError("No hay conexion al servidor");	
				return ERROR;
			}
	    }else{
	    	this.addActionError("Su sesion ha caducado");	
	    	 return ERROR;
	    }
	    return SUCCESS;
    }

	
    @SuppressWarnings("rawtypes")
	private String listar() 
    {
		lst_prospectos=new HashMap<String, String>();
		  Map session = ActionContext.getContext().getSession();
		  Usuario USUARIO = (Usuario)session.get("ses_usuario");
		  if (USUARIO==null){
			  this.addActionError("La sesion del usuario ha caducado");
			  return ERROR;
		  }
		Conectar BASE= new Conectar();
		  if(BASE.getMsg().equals("SI")){	
			  try
			  {
		    	String SQL="";

		    	
		    	if(USUARIO.getPerfil().getCod().trim().equals("2") )
		    	{
		    		SQL="Select P.codigo,P.nombres+' '+P.apellidos as des From prospectos P,corp_asignaciones A,usuarios U,vendedores V Where A.vendedor=V.cod and V.mostrar='1' and V.tipo='CORPORATIVO' and V.usuario=U.usuario and U.usuario='"+ USUARIO.getUsuario() +"' and P.status in('EN PROCESO','PROCESADO') and P.tipo in('CORPORATIVO','PYME','EVENTO') and P.codigo=A.prospecto and A.status in('EN PROCESO','PROCESADO')  Order by P.nombres,P.apellidos";
			    }
		    	else if(USUARIO.getPerfil().getCod().trim().equals("3") || USUARIO.getPerfil().getCod().trim().equals("4")  ) 
		    	{
		        	SQL="Select P.codigo,P.nombres+' '+P.apellidos as des From prospectos P,corp_asignaciones A,usuarios U,vendedores V Where A.vendedor=V.cod and V.mostrar='1' and V.tipo='CORPORATIVO' and V.usuario=U.usuario and P.prop='"+ USUARIO.getUsuario() +"' and P.status in('EN PROCESO','PROCESADO') and P.tipo in('CORPORATIVO','PYME','EVENTO') and P.codigo=A.prospecto and A.status in('EN PROCESO','PROCESADO')  Order by P.nombres,P.apellidos";
			    }
		    	else
		    	{
		        	SQL="Select P.codigo,P.nombres+' '+P.apellidos as des From prospectos P,corp_asignaciones A,usuarios U,vendedores V Where A.vendedor=V.cod and V.mostrar='1' and V.tipo='CORPORATIVO' and V.usuario=U.usuario and P.status in('EN PROCESO','PROCESADO') and P.tipo in('CORPORATIVO','PYME','EVENTO') and P.codigo=A.prospecto and A.status in('EN PROCESO','PROCESADO')  Order by P.nombres,P.apellidos";
			    }
		    	
		    	//Imprimir en consola ralentiza extremedamente el programa.
		    	//System.out.println("**************************/nProspecto"+SQL);
		    	
				Resultado  RCS=BASE.getBaseDatos().consultar(SQL);
				  if(RCS.RP)
				  {
					  do
					  { 
						  lst_prospectos.put(RCS.getCadena("codigo"),RCS.getCadena("des"));
					  }
					  while(RCS.sigItem()); 
				  }
			   }
			  catch(Exception err  )
			  {
					System.out.println("Prospecto.listar().error: "+err.getCause().toString());
			  }
			  
			  BASE.getBaseDatos().cerrarConexion();    
		  }
		  return SUCCESS;
	} 
    
    @SuppressWarnings("rawtypes")
	public String graficar() throws Exception {
	    Map session = ActionContext.getContext().getSession();
	    Usuario USUARIO = (Usuario)session.get("ses_usuario");
	    if (USUARIO==null){
	    	this.addActionError("Su sesion ha caducado");
	    	return ERROR;
	    }
	    return SUCCESS;
    }
    
    @SuppressWarnings("rawtypes")
	public String mostrar_v() throws Exception {
    	Map session = ActionContext.getContext().getSession();
	    Usuario USUARIO = (Usuario)session.get("ses_usuario");
	    if (USUARIO==null){
	    	this.addActionError("La sesion del usuario ha caducado");
	    	return ERROR;
	    }
	    if(prospecto==null ){
	    	this.addActionError("Debe indicar los parametros");
	    	return ERROR;
	     }
	     if( prospecto.getCodigo().length()<=0 ){
	    	this.addActionError("Debe indicar el codigo del prospecto");
	    	return ERROR;
	     }
    	 this.setAuto_v("SI");
    	 return SUCCESS;
    }
    
    @SuppressWarnings("rawtypes")
	public String mostrar() throws Exception {
    	Map session = ActionContext.getContext().getSession();
	    Usuario USUARIO = (Usuario)session.get("ses_usuario");
	    if (USUARIO==null){
	    	this.addActionError("La sesion del usuario ha caducado");
	    	return ERROR;
	    }
	    if(prospecto==null ){
	    	this.addActionError("Debe indicar los parametros");
	    	return ERROR;
	    }
	    if( prospecto.getCodigo().length()<=0 ){
	    	this.addActionError("Debe indicar el codigo del prospecto");
	    	return ERROR;
	    }
	    Conectar BASE= new Conectar();
	    if(BASE.getMsg().equals("SI" ) ){
	    	 String SQL="select P.nombres from prospectos P where P.codigo='"+ prospecto.getCodigo() +"' ";
		     Resultado RCS=BASE.getBaseDatos().consultar(SQL);
			 if(RCS.RP){
				  this.setTitulo(RCS.getCadena("nombres"));
				  BASE.getBaseDatos().cerrarConexion(); 
				  return SUCCESS;
			 }else{
				 this.addActionError("Codigo no valido");
				 BASE.getBaseDatos().cerrarConexion(); 
			     return ERROR; 
			 }
			 
	    }else{
	    	this.addActionError("No hay conexion al servidor");
	    	return ERROR;
	    }
	    	
	    
   } 
    
    
    
	public String getTitulo() {
		return titulo;
	}
	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}
	public String getJSON(){
    	return listar();
    }
    public Prospecto getProspecto() {
		return prospecto;
	}
	public void setProspecto(Prospecto prospecto) {
		this.prospecto = prospecto;
	}
	public Map<String, String> getLst_prospectos() {
		return lst_prospectos;
	}
	public void setLst_prospectos(Map<String, String> lst_prospectos) {
		this.lst_prospectos = lst_prospectos;
	}
	public LinkedList<SucursalC> getSucursales() {
		return sucursales;
	}
	public void setSucursales(LinkedList<SucursalC> sucursales) {
		this.sucursales = sucursales;
	}
	public LinkedList<Prospecto> getRpt_lista() {
		return rpt_lista;
	}
	public void setRpt_lista(LinkedList<Prospecto> rpt_lista) {
		this.rpt_lista = rpt_lista;
	}
	public String getOpc() {
		return opc;
	}
	public void setOpc(String opc) {
		this.opc = opc;
	}
	public String getAuto_v() {
		return auto_v;
	}
	public void setAuto_v(String auto_v) {
		this.auto_v = auto_v;
	}
	
}
